﻿using System;
using System.Collections.Generic;
using FluorineFx;
using Neturion.Dados;
using Neturion.Fachadas;

namespace Neturion.Servicos
{
    [RemotingService]
    public class ServicoTransferencia
    {
        public Transferencia Inserir(Transferencia transferencia, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().Inserir(transferencia);
        }

        public Transferencia Atualizar(Transferencia transferencia, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().Atualizar(transferencia);
        }

        public void Excluir(Transferencia transferencia, Usuario usuarioPermissao)
        {
            Fachada.GetInstancia().Excluir(transferencia);
        }

        public Transferencia ObterTransferenciaPorId(int id, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().ObterTransferenciaPorId(id);
        }

        public IList<Transferencia> ObterTodosTransferencias()
        {
            return Fachada.GetInstancia().ObterTodosTransferencias();
        }

        public IList<Transferencia> ObterTodosTransferencias(int inicio, int quantidade, int quantidadeMinima, Usuario usuarioPermissao, string numero, string documento, DateTime? inicioVigenciaDe,
                                                            DateTime? inicioVigenciaAte, ContaBanco contaBancoOrigem, ContaBanco contaBancoDestino, string valorInicio, string valorFim)
        {
            decimal value;
            decimal? valorInicioDecimal = null;
            decimal? valorFimDecimal = null;
            if(!string.IsNullOrEmpty(valorInicio) && decimal.TryParse(valorInicio, out value) && !valorInicio.Equals("0"))
            {
                valorInicioDecimal = value;
            }

            if (!string.IsNullOrEmpty(valorFim) && decimal.TryParse(valorFim, out value) && !valorFim.Equals("0"))
            {
                valorFimDecimal = value;
            }

            return Fachada.GetInstancia().ObterTodosTransferencias(inicio, quantidade, quantidadeMinima, usuarioPermissao, numero, documento, inicioVigenciaDe, inicioVigenciaAte, contaBancoOrigem, contaBancoDestino, valorInicioDecimal, valorFimDecimal);
        }
    }
}